package com.niji.littly_donkey_android.util; /**
 *获取当前时间戳的方法：
 * 1.System.currentTimeMillis()
 * 2.Calendar.getInstance()
 */


import android.net.ParseException;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * Created by xing 2017/6/14.
 * 时间工具类：时间戳转化为时间  比较时间相差多少
 * 修改SimpleDateFormat里的格式，可转换成相应格式时间
 */

public class TimeUtil {

    /**
     * 对比当前时间，转换时间戳
     *
     * @param cc_time 需要转换的时间戳
     * @return 返回的时间格式：获取时间年份与当前年份一致，返回 MM-dd HH:mm；否则返回yyyy-MM-dd HH:mm
     */
    public static String timeCompareYMDHMinSFigure(long cc_time) {
        Calendar now = Calendar.getInstance();
        String year = now.get(Calendar.YEAR) + "";
        String re_StrTime = null;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        re_StrTime = sdf.format(new Date(cc_time));
        String years = re_StrTime.substring(0, 4);
        if (!year.equals(years)) {
            return re_StrTime;
        } else {
            return re_StrTime.substring(5, re_StrTime.length());
        }
    }

    /**
     * 时间格式转换
     *
     * @param time 需要转换的时间戳
     * @return 返回时间格式  yyyy年MM月dd日
     */
    public static String timeYMDChinese(long time) {
        String re_StrTime = null;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
        re_StrTime = sdf.format(new Date(time));
        return re_StrTime;
    }


    /**
     * 时间格式转换
     *
     * @param time 需要转换的时间戳
     * @return 返回时间格式  yyyy-MM-dd  HH:mm:ss
     */
    public static String timeYMDHMinSFigure(long time) {
        String re_StrTime = null;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss");
        re_StrTime = sdf.format(new Date(time));
        return re_StrTime;
    }

    /**
     * 时间格式转换
     *
     * @param time 需要转换的时间戳
     * @return 返回时间格式  yyyy-MM-dd
     */
    public static String timeYMDFigure(long time) {
        String re_StrTime = null;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        re_StrTime = sdf.format(new Date(time));
        return re_StrTime;

    }

    /**
     * 毫秒 转化为 天 时 分 秒 毫秒
     *
     * @param ms 毫秒数
     * @return dd天HH时mm秒xx毫秒
     */
    public static String formatTime(Long ms) {
        Integer ss = 1000;
        Integer mi = ss * 60;
        Integer hh = mi * 60;
        Integer dd = hh * 24;

        Long day = ms / dd;
        Long hour = (ms - day * dd) / hh;
        Long minute = (ms - day * dd - hour * hh) / mi;
        Long second = (ms - day * dd - hour * hh - minute * mi) / ss;
        Long milliSecond = ms - day * dd - hour * hh - minute * mi - second * ss;

        StringBuffer sb = new StringBuffer();
        if (day > 0) {
            sb.append(day + "天");
        }
        if (hour > 0) {
            sb.append(hour + "小时");
        }
        if (minute > 0) {
            sb.append(minute + "分钟");
        }
        if (second > 0) {
            sb.append(second + "秒");
        }
        if (milliSecond > 0) {
            sb.append(milliSecond + "毫秒");
        }
        return sb.toString();
    }


}

